home *** CD-ROM | disk | FTP | other *** search
/ MacHome 2001 May / MacHome CD (May 2001).iso / mac / Stuff / Software / Tools / The Fragmalyzer 1.5.1 / Extras / Headers & Libraries / Plug-ins / PowerPCCodeBrowser.h < prev   
Encoding:
C/C++ Source or Header  |  2000-11-08  |  3.2 KB  |  125 lines  |  [TEXT/CWIE]

  1. /*
  2.     File:        PowerPCCodeBrowser.h
  3.  
  4.     Contains:    PowerPC Code Browser for the Fragmalyzer
  5.  
  6.     Written by:    Dan Wright
  7.  
  8.     Copyright:    © 1999-2000 Dan Wright, All rights reserved
  9.  
  10.     Change History (most recent first):
  11.  
  12.          <3>     5/15/00    DW      updates for 1.5
  13.          <2>     4/16/99    DW      Version 1.0 final
  14.          <1>      4/2/99    DW      first version
  15. */
  16.  
  17. #ifndef __POWERPCCODEBROWSER__
  18. #define __POWERPCCODEBROWSER__
  19.  
  20. #include "FrazAPI.h"
  21.  
  22.  
  23. #if PRAGMA_ONCE
  24. #pragma once
  25. #endif
  26.  
  27. #ifdef __cplusplus
  28. extern "C" {
  29. #endif
  30.  
  31. #if PRAGMA_STRUCT_ALIGN
  32.     #pragma options align=mac68k
  33. #elif PRAGMA_STRUCT_PACKPUSH
  34.     #pragma pack(push, 2)
  35. #elif PRAGMA_STRUCT_PACK
  36.     #pragma pack(2)
  37. #endif
  38.  
  39.  
  40. #ifdef __MWERKS__
  41.     #pragma push
  42.     #pragma reverse_bitfields off
  43. #endif
  44.  
  45.  
  46. enum    {
  47.     kSigPluginCodeBrowser    = FOUR_CHAR_CODE('ppcc'),
  48.  
  49.     cmd_CodeBrowse     = 1,
  50.     cmd_CodeViewSymbol,
  51.     cmd_CodeAddMarker,
  52.     cmd_CodeGoBack,
  53.     
  54.     /* commands new in version 1.5 */
  55.     cmd_CodeSwitchToDataBrowser,
  56.     cmd_CodeFindReferences,
  57.     
  58.     /* submenu commands */
  59.     cmd_CodeGoMark = 10,
  60.     cmd_CodeSetMark = 20,
  61.     cmd_CodeHistory = 30,
  62.     
  63.     /* submenu commands new in version 1.5 */
  64.     cmd_CodeReferences = 100
  65.     };
  66.  
  67. typedef struct CodeBlockInfo
  68.     {
  69.     UInt32    offsetIntoCode;
  70.     UInt32    offsetIntoSym;
  71.     UInt32    fGlue : 1;
  72.     UInt32    fExported : 1;
  73.     UInt32    fEntry : 1;    // init/main/term
  74.     UInt32    fData : 1;
  75.     UInt32    fAnon : 1;
  76.     UInt32    reserved     : 3;
  77.     UInt32    cbFn     : 24;        // size of function
  78.     } CodeBlockInfo;
  79.  
  80.  
  81. Boolean     CodeBrowserOpenFragment(BrowserRef browser, FragmentRef fragment);
  82. Boolean     CodeBrowserIsLoaded(void);
  83.  
  84. typedef WindowPtr     (*CodeFindBrowserProcPtr)(FragmentRef);
  85. typedef Boolean        (*CodeGotoSymbolProcPtr)(FragmentRef, ConstStr255Param);
  86. typedef Boolean        (*CodeGotoOffsetProcPtr)(FragmentRef, UInt32);
  87. typedef Boolean        (*CodeGetOffsetInfoProcPtr)(FragmentRef, UInt32, StringPtr, CodeBlockInfo *);
  88.  
  89. WindowPtr CodeFindBrowser(FragmentRef fragment);
  90. Boolean     CodeGotoSymbol(FragmentRef fragment, ConstStr255Param stSymbol);
  91. Boolean     CodeGotoOffset(FragmentRef fragment, UInt32 offset);
  92. Boolean     CodeGetOffsetInfo(FragmentRef fragment, UInt32 offset, StringPtr pstName, CodeBlockInfo *);
  93.  
  94. /* version 1.5 */
  95. typedef WindowPtr     (*CodeFindLocatorBrowserProcPtr)(ConstFrazLocatorPtr);
  96. typedef Boolean        (*CodeOpenLocatorProcPtr)(ConstFrazLocatorPtr, BinFormat, ConstStringPtr);
  97. typedef Boolean        (*CodeGotoLocatorSymbolProcPtr)(ConstFrazLocatorPtr, ConstStr255Param);
  98. typedef Boolean        (*CodeGotoLocatorOffsetProcPtr)(ConstFrazLocatorPtr, UInt32);
  99. typedef Boolean        (*CodeGetLocatorOffsetInfoProcPtr)(ConstFrazLocatorPtr, UInt32, StringPtr, CodeBlockInfo *);
  100.  
  101. WindowPtr CodeFindLocatorBrowser(ConstFrazLocatorPtr);
  102. Boolean    CodeOpenLocator(ConstFrazLocatorPtr, BinFormat, ConstStringPtr stName);
  103. Boolean    CodeGotoLocatorSymbol(ConstFrazLocatorPtr, ConstStr255Param);
  104. Boolean    CodeGotoLocatorOffset(ConstFrazLocatorPtr, UInt32 offset);
  105. Boolean    CodeGetLocatorOffsetInfo(ConstFrazLocatorPtr, UInt32 offset, StringPtr pstName, CodeBlockInfo *);
  106.  
  107. #ifdef __MWERKS__
  108.     #pragma pop
  109. #endif
  110.  
  111.  
  112. #if PRAGMA_STRUCT_ALIGN
  113.     #pragma options align=reset
  114. #elif PRAGMA_STRUCT_PACKPUSH
  115.     #pragma pack(pop)
  116. #elif PRAGMA_STRUCT_PACK
  117.     #pragma pack()
  118. #endif
  119.  
  120. #ifdef __cplusplus
  121.     }
  122. #endif
  123.  
  124. #endif /* __POWERPCCODEBROWSER__ */
  125.